1. Field of the Invention
The invention relates generally to a method for updating computer systems and more specifically for automatically installing and updating device drivers to eliminate problems of missing, inconsistent, or outdated device drivers.
2. Background
Device drivers used in computer systems are known in the art. A driver is a computer program that controls a device and acts like a translator between the device and computer programs that use the device. Each device generally has its own set of specialized commands that are processed by its corresponding driver. In contrast, most computer programs access devices using generic commands. The driver, therefore, accepts the generic commands from a computer program and then translates them into specialized commands for the device. The controlled device may be either a hardware device (such as a printer, a disk drive, or a keyboard) or a software device (such as a database). A driver for a device is typically supplied on a separate storage medium (floppy disk, CD-ROM, DVD, etc.) accompanying the device. Drivers may also be incorporated in the operating system of a computer system or stored in non-volatile storage on the device itself.
The installation, reinstallation, or updating of a device and its associated driver on a computer system is difficult for unsophisticated users. Industry specifications such as the Plug and Play BIOS Specification v. 1.0a, published May 5, 1994; Plug and Play ISA Specification v. 1.0a, published May 5, 1994; and Universal Serial Bus Specification Revision 1.1, published Sep. 23, 1998 have improved device installation by allowing the operating system to automatically allocate hardware resources to newly installed devices, thus relieving the user of that burden. However, the user is still responsible for providing an up-to-date version of the associated driver and ensuring that it is correctly installed.
This is especially problematic in cases where a driver is being updated or reinstalled because the user is having a problem with the device. In this case, the user generally has two options. First, the user may attempt to find the storage medium containing the driver originally supplied with the device and reinstall that driver; this risks problems with using an old driver that may now be obsolete. Alternatively, the user may search the device manufacturer's web site in order to download an updated driver. In this case, unsophisticated users are required to understand technical jargon and model numbers to ensure that the driver that the user desires matches the device. Even if the user succeeds in finding the new driver, the user must download the driver and ensure that the device installation routine is able to find the new driver. It is therefore desirable to have a system that allows drivers to be automatically located and installed with reduced actions by a user.